//
//  YCTitleButton.swift
//  WeiboDemo
//
//  Created by 尹成 on 2017/1/18.
//  Copyright © 2017年 yc. All rights reserved.
//

import UIKit

class YCTitleButton: UIButton {
    
    init(title:String?) {
        super.init(frame: CGRect())
        
        if title != nil {
            
            setImage(UIImage(named:"navigationbar_arrow_down"), for: .normal)
            setImage(UIImage(named:"navigationbar_arrow_up"), for: .selected)
            setTitle(title!+" ", for: .normal)
        } else {
            setTitle("首页", for: .normal)
        }
        
        setTitleColor(UIColor.darkGray, for: .normal)
        
        sizeToFit()
    }
    
    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    
//    var layoutSubviewsTime:Int = 0
    
    override func layoutSubviews() {
        super.layoutSubviews()
        
//        print("true : layoutSubviews")
        
        guard let title = titleLabel,
            let image = imageView else {
                return
        }
        
        // FIXME: button 图像 文字 位置调整
        /**
         layoutSubviews() 执行了两次，导致 title ，image 的位置偏移 设置了两次，
         准备用 dispatch_once 保证只执行一次位置偏移，但 dispatch_xx 在 Swift3.0 中 被废弃
         便是用手动计数的方式保证 位置偏移 只被设置一次，
         但是，还有bug
         */
        
//        if layoutSubviewsTime > 0 {
//            return
//        }
        
        title.frame = title.frame.offsetBy(dx: -image.bounds.width, dy: 0)
        image.frame = image.frame.offsetBy(dx: title.bounds.width, dy: 0)
        
//        layoutSubviewsTime += 1

    }
    
}
